package com.example.mybatisplus.service;

import com.example.mybatisplus.model.domain.*;
import com.baomidou.mybatisplus.extension.service.IService;
import com.example.mybatisplus.model.dto.DormitoryAdminForm;
import com.example.mybatisplus.model.dto.RepairForm;
import com.example.mybatisplus.model.dto.RoomAdjustForm;

import java.time.LocalDateTime;
import java.util.List;
import java.util.Map;

/**
 * <p>
 *  服务类
 * </p>
 *
 * @author zzy
 * @since 2024-06-24
 */
public interface DormitoryAdminService extends IService<DormitoryAdmin> {
    public List<RoomAdjustForm> selectInroomAdjust(Dot dot);

    public List<RoomAdjustForm> selectOutroomAdjust(Dot dot);

    boolean confirmAdjust(Long id, Long roomID);

    List<RoomAdjustForm> selectInBuildingAdjust(Dot dot);

    List<RoomAdjustForm> selectAllocationInBuildingAdjust(Dot dot);


    List<DormitoryAdminForm> selectDormitoryAdminByNameAndAccount(Dot dot);

    List<DormitoryAdminForm> dormitoryAdminAll(Dot dot);

    Room getOneRoom(Long id);

    List<Keeper> getKeepers();

    boolean updateRepair(Long repairID, Long keeperID);

    String getBuildingName(int id);

    void insertActivity(Long id, LocalDateTime checkTime);

    List<HygieneCheck> getAllActivity(Dot dot);
    List<HygieneCheck> getOneActivity(Dot dot);

    boolean updateGrade(Long id, int grade);

    boolean updateGradeList(Long dormitoryAdminID, LocalDateTime checkTime, String roomName, int grade);

    List<Student> getStudent(Long dormitoryAdminID);

    boolean createdIndiscipline(Long dormitoryAdminID, Long studentID, String state, LocalDateTime occurrenceTime, String reason);

    List<Indiscipline> getIndiscipline(Dot dot);
    List<RoomAdjustForm> selectInAllocationAdjust(Dot dot);

    List<RoomAdjustForm> selectOutAllocationAdjust(Dot dot);

    List<RepairForm> getDoneRepair(Dot dot);

    List<Room> getRooms(Long dormitoryAdminID);

    List<HygieneCheck> getHygieneByRoom(Dot dot);

    List<Indiscipline> getIndisciplineByStudent(Dot dot);

    boolean updateRating(Long dormitoryAdminID);

    List<RatingTable> getRating(Dot dot);
}
